Over the past decades, the Internet has dramatically revolutionized the architecture of computerized systems. In particular, the Internet has transformed conventional content provider systems into dynamic and highly interactive online systems using client/server architectures.
Modern content provider systems use one or more server computing devices (also referred to as server devices or servers) which receive client requests from client computing devices (also referred to as client devices) through a dedicated user interface via a communication network. A user can accordingly directly submit a request (also referred to as a query) using a client device for content through the dedicated user interface to access content such as a product. The server device can search for one or more candidate products that satisfy the user request, using a search engine, and return a response to the client device through the dedicated interface. The response can comprise the list of candidate products (also called product proposals or solutions) determined by the search engine and various information related to each candidate product. The user can then select one product among the candidate products and initiate a purchase transaction to purchase the product.
Some existing content provider systems also provide auxiliary products also called “complementary products” or “services” in connection with the delivered products. Such ancillary services can be directly provided by the content provider system or provided by another indirect content provider system.
For example, the content provider system may be a travel provider system which determines the best journey options in response to a user request for a travel, the user specifying on a user interface a set of parameter requests such as a date, a departure geographical location and an arrival geographical location, and possibly additional user preferences (e.g., cost criteria, connections, etc.). The user can thus access the dedicated user interface of the travel management system and submit a travel request to obtain travel information and/or buy a travel product (travel booking) such as a flight product for a given itinerary at a given date. In some situations, the user can need additional services related to the travel product such as optional services related to the travel (e.g., meal service, seat related services, pet transport service, etc.).
The search engine of conventional content provider systems use important resources to process each user request, such processing requiring a huge number of accesses to data stored in several databases or cache resources and to determine candidate products, thereby resulting in high computational cost.
To optimize the computational cost of the search engine, different approaches were proposed. A first approach is based on a limitation of the search domain in which the search engine determines the candidate solution using an optimized search algorithm or pre-filtering.
Another existing approach consists in using pre-computed data to limit the computations required to process each request.
To optimize the resources of the content provider system (booking or purchasing system for example), still another existing approach has been proposed which is based on the use of a “pre-transaction” content provider system (as also called “pre-booking”, “pre-purchasing”, or “pre-shopping” system for example) connected to the transaction system to provide product recommendations in a pre-transaction phase (also referred to as a “recommendation” or “pre-processing” phase). The pre-transaction content provider system (also referred to as a pre-transaction system hereinafter) provides product information to a client device derived from statistical data in response to a user request. More specifically, instead of computing the response to each request in real-time from up-to-date databases, the pre-transaction content provider system uses statistical data related to previously purchased products over a past period. Similarly to the transaction content provider system, the pre-transaction content provider system returns candidate products (for example travel proposals) to the client device, the information associated with the products (such as the product price for example) being thus determined from past transactions. Further, the pre-transaction content provider system can process a request even if a limited number of request parameters are inputted by the user. The user has thus access to statistical information about available products without a need for the search engine to process the requests in real time and access to multiple databases. If the user wishes to perform a transaction (e.g., buy or book a product), he can select a product in the interface dedicated to the pre-transaction content provider system to be redirected to the content provider system or can directly access the content provider system.
Currently, such pre-transaction systems can only provide information about the direct products (main products) delivered by the content provider system because they handle a huge volume of product related data. Conventional pre-transaction systems do not generally provide information about complementary products (i.e., services) related to a product (such as for example the service availability in connection with a product and service price). In some cases, they can at most provide very limited and not fully accurate ancillary services information. Because of the relationship between an ancillary service and a product, setting values for a service (service values or prices) requires linking such value to the product value (product price), which involves an exponential processing complexity.
However, in some situations, a user will only complete/validate a transaction (i.e., purchase a product) if specific services are available. Exemplary services in the travel field include for example additional room, availability of vegetarian meal, availability of Video-On-Demand during a flight, animal travel options, etc. Accordingly, after accessing the pre-transaction system, a user may submit several transaction requests to the transaction content provider system, access to the product proposals and check the service options. The user may finally decide not to proceed with the transaction because of unavailability of specific service(s), or submit additional requests to the transaction content provider system with different parameters to try to find products with the desired service(s) at the best price. This results in additional computational cost at the transaction system. Such additional cost is all the more important as linking services with products as such requires important computational resources with several accesses to different databases at the server side. Such load of the transaction system can limit its performances, the processing time of the requests and its quality of service. The user experience can be deeply impacted by such a slow processing rate, thereby deterring the users from completing the transaction or inducing them to turn to another content provider system.
Improved systems and methods for delivering products and services connected to the products that limit the overload of the content provider system are accordingly needed.